package visual.cadastros.produto;

import interfaces.IPreencherJTable;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Dialog.ModalExclusionType;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import apoio.FuncoesGerais;
import apoio.Tipos;
import apoio.Tipos.Tipo;
import basedados.arquivos_texto.TxtIObj;
import basedados.entidades.Produtos;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;

/**
 * Formulaio de Cadastro de Produtos de Livraria, CDDVDGAMES e de Papelaria
 * @author Emerson Shigueo Sugimoto
 * @date 03 out 2011
 * */
public class frmCadastrarProdutos extends JFrame {
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private IPreencherJTable _ipt;
	private JTextField txtNome;
	private JTextField txtValor;
	private JTextField txtQuantidade;
	private JLabel lblNovoCodigo;
	private JComboBox cboTipoProduto; 
	private JTextField txtNomeProdutoEditar;
	private JTextField txtValorEditar;
	private JTextField txtQuantidadeEditar;
	private JLabel lblCodigoProdutoEditar;
	private JComboBox cboTipoProdutoEditar;
	private JScrollPane scrollPane;
	private JButton btnEditar;
	private JButton btnExcluir;
	private JTable table = null;
	
	private int _codigoEditar = -1;
	
	public void setIpt(IPreencherJTable ipt) {this._ipt = ipt;}
	public IPreencherJTable getIpt() {return _ipt;}

	/**
	 * Launch the application.
	 */
//	public static void main(String[] args) {
//		EventQueue.invokeLater(new Runnable() {
//			public void run() {
//				try {
//					frmCadastrarProdutos frame = new frmCadastrarProdutos();
//					frame.setVisible(true);
//				} catch (Exception e) {
//					e.printStackTrace();
//				}
//			}
//		});
//	}
	
	/**
	 * Cria o frame.
	 */
	public frmCadastrarProdutos(IPreencherJTable ipt) {
		setIpt(ipt);
		setResizable(false);
		
		setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
		setTitle("Produtos");
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 718, 455);
		contentPane = new JPanel();
		contentPane.setBackground(Color.WHITE);
		contentPane.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JMenuBar menuBar = new JMenuBar();
		menuBar.setForeground(Color.BLACK);
		menuBar.setBackground(Color.WHITE);
		menuBar.setBounds(0, 0, 712, 21);
		contentPane.add(menuBar);
		
		JMenu mnAes = new JMenu("A\u00E7\u00F5es");
		mnAes.setForeground(Color.BLACK);
		mnAes.setFont(new Font("Dialog", Font.PLAIN, 11));
		menuBar.add(mnAes);
		
		final JPanel layeredEdicao = new JPanel();
		layeredEdicao.setBackground(Color.WHITE);
		layeredEdicao.setLayout(null);
		
		final JPanel layeredProdutos = new JPanel();
		layeredProdutos.setBackground(Color.WHITE);
		layeredProdutos.setLayout(null);
		scrollPane = new JScrollPane();
		scrollPane.setBounds(0, 0, 677, 298);
		layeredProdutos.add(scrollPane);
		
		final JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
		tabbedPane.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent arg0) {
				if (tabbedPane.getSelectedComponent() == layeredEdicao) {
					if (_codigoEditar <= 0) {
						limparCampos();
						apoio.Mensagens.mensagemAlerta("Selecione um item a ser editado e clique em editar", "Editar");
						tabbedPane.setSelectedComponent(layeredProdutos);
					}	
				} else {
					_codigoEditar = -1;
				}
			}
		});
		
		lblNovoCodigo = new JLabel("");
		lblNovoCodigo.setFont(new Font("Dialog", Font.PLAIN, 11));
		
		cboTipoProdutoEditar = new JComboBox();
		cboTipoProdutoEditar.setFont(new Font("Dialog", Font.PLAIN, 10));
		cboTipoProdutoEditar.setEnabled(false);
		cboTipoProdutoEditar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				int selecionado = FuncoesGerais.recuperaCodigoCombo(cboTipoProdutoEditar);
				Produtos p = new Produtos();
				p.setTipoProduto(Tipos.IntTipo(selecionado));
				TxtIObj tx = new TxtIObj(p);

				lblCodigoProdutoEditar.setText(String.valueOf(tx.proximoCodigoCadastro(p.getTipoProduto())));
			}
		});
		cboTipoProdutoEditar.setBounds(106, 12, 238, 20);
		layeredEdicao.add(cboTipoProdutoEditar);
		
		btnEditar = new JButton("Editar");
		btnEditar.setEnabled(false);
		btnEditar.setFont(new Font("Dialog", Font.PLAIN, 10));
		btnEditar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if (!SelecionouAlguem()) return;
				if (getIdSelecionado().equals("-1")) return;
				
				String id = getIdSelecionado();
				
				DefaultTableModel modelo = (DefaultTableModel)getJTable().getModel();
				String tp = (String)modelo.getValueAt(getJTable().getSelectedRow(), 1);
				Tipo tpProduto = Tipos.IntTipo(Integer.valueOf(tp));
				String nome = (String)modelo.getValueAt(getJTable().getSelectedRow(), 2);
				String valor = (String)modelo.getValueAt(getJTable().getSelectedRow(), 3);
				String quantidade = (String)modelo.getValueAt(getJTable().getSelectedRow(), 4);
				
				cboTipoProdutoEditar.setSelectedIndex(tpProduto.getValue());
				txtNomeProdutoEditar.setText(nome);
				txtValorEditar.setText(String.valueOf(valor));
				txtQuantidadeEditar.setText(String.valueOf(quantidade));
				lblCodigoProdutoEditar.setText(id);
				
				_codigoEditar = Integer.valueOf(id);
				
				layeredEdicao.setEnabled(true);
				tabbedPane.setSelectedComponent(layeredEdicao);
				
			}
		});
		btnEditar.setBounds(281, 310, 90, 23);
		layeredProdutos.add(btnEditar);
		
		final JPanel layeredCadastro = new JPanel();
		layeredCadastro.setBackground(Color.WHITE);
		layeredCadastro.setLayout(null);
		
		JLabel lblCodigoLBL = new JLabel("C\u00F3digo:");
		lblCodigoLBL.setFont(new Font("Dialog", Font.PLAIN, 11));
		lblCodigoLBL.setBounds(10, 36, 75, 14);
		layeredCadastro.add(lblCodigoLBL);
		
		
		lblNovoCodigo.setBounds(104, 36, 226, 14);
		layeredCadastro.add(lblNovoCodigo);
		
		JLabel lblTipoProduto = new JLabel("Tipo Produto:");
		lblTipoProduto.setFont(new Font("Dialog", Font.PLAIN, 11));
		lblTipoProduto.setBounds(10, 11, 85, 14);
		layeredCadastro.add(lblTipoProduto);
		contentPane.add(tabbedPane);
		
		JMenuItem mntmCadastrar = new JMenuItem("Cadastrar");
		mntmCadastrar.setFont(new Font("Dialog", Font.PLAIN, 11));
		mntmCadastrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				tabbedPane.setSelectedComponent(layeredCadastro);
			}
		});
		mnAes.add(mntmCadastrar);
		
		JButton btnCadastrar = new JButton("Cadastrar");
		btnCadastrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				tabbedPane.setSelectedComponent(layeredCadastro);
			}
		});
		btnCadastrar.setFont(new Font("Dialog", Font.PLAIN, 10));
		btnCadastrar.setBounds(181, 310, 90, 23);
		layeredProdutos.add(btnCadastrar);
		
		btnExcluir = new JButton("Excluir");
		btnExcluir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if (!SelecionouAlguem()) return;
				if (getIdSelecionado().equals("-1")) return;
				if (apoio.Mensagens.question("Deseja Excluir ?", "Exclusao")){
					
					DefaultTableModel modelo = (DefaultTableModel)getJTable().getModel();
					String tp = (String)modelo.getValueAt(getJTable().getSelectedRow(), 1);
					Tipo tpProduto = Tipos.IntTipo(Integer.valueOf(tp));
					
					Produtos p = new Produtos();
					p.setCodigo(Integer.valueOf(getIdSelecionado()));
					p.setTipoProduto(tpProduto);
					
					TxtIObj tx = new TxtIObj(p);
					if (tx.Excluir()) {
						preencher();
						apoio.Mensagens.mensagemInfo("Produto Excluido", "Excluido");
					} else {
						apoio.Mensagens.mensagemErro("Ocorreu um erro na exclusao", "Erro");
					}
					tx = null;
				}
			}
		});
		btnExcluir.setEnabled(false);
		btnExcluir.setFont(new Font("Dialog", Font.PLAIN, 10));
		btnExcluir.setBounds(384, 310, 90, 23);
		layeredProdutos.add(btnExcluir);

		tabbedPane.setBounds(10, 26, 682, 380);
		tabbedPane.setFont(new Font("Tahoma", Font.PLAIN, 11));

		tabbedPane.addTab("Produtos", null, layeredProdutos, null);
		tabbedPane.addTab("Cadastro", null, layeredCadastro, null);
		tabbedPane.addTab("Editar", null, layeredEdicao, null);
		
		JLabel label = new JLabel("Tipo Produto:");
		label.setFont(new Font("Dialog", Font.PLAIN, 10));
		label.setBounds(12, 15, 85, 14);

		JLabel label_1 = new JLabel("Codigo:");
		label_1.setFont(new Font("Dialog", Font.PLAIN, 10));
		label_1.setBounds(12, 40, 75, 14);
		layeredEdicao.add(label_1);
		
		lblCodigoProdutoEditar = new JLabel("1");
		lblCodigoProdutoEditar.setFont(new Font("Dialog", Font.PLAIN, 10));
		lblCodigoProdutoEditar.setBounds(106, 40, 226, 14);
		layeredEdicao.add(lblCodigoProdutoEditar);
		
		JLabel label_3 = new JLabel("Nome:");
		label_3.setFont(new Font("Dialog", Font.PLAIN, 10));
		label_3.setBounds(12, 65, 75, 14);
		layeredEdicao.add(label_3);
		
		txtNomeProdutoEditar = new JTextField();
		txtNomeProdutoEditar.setColumns(10);
		txtNomeProdutoEditar.setBounds(106, 65, 238, 20);
		layeredEdicao.add(txtNomeProdutoEditar);
		
		JLabel label_4 = new JLabel("Valor:");
		label_4.setFont(new Font("Dialog", Font.PLAIN, 10));
		label_4.setBounds(12, 93, 46, 14);
		layeredEdicao.add(label_4);
		
		txtValorEditar = new JTextField();
		txtValorEditar.setBounds(106, 90, 238, 20);
		layeredEdicao.add(txtValorEditar);
		
		JLabel label_5 = new JLabel("Quantidade:");
		label_5.setFont(new Font("Dialog", Font.PLAIN, 10));
		label_5.setBounds(13, 121, 75, 14);
		layeredEdicao.add(label_5);
		
		txtQuantidadeEditar = new JTextField();
		txtQuantidadeEditar.setBounds(107, 118, 237, 20);
		layeredEdicao.add(txtQuantidadeEditar);
		
		JButton btnProdutoEditar = new JButton("Editar");
		btnProdutoEditar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if (verificaCamposEditar()){
					if (apoio.Mensagens.question("Deseja Editar ?", "Editar")) {
						String id = lblCodigoProdutoEditar.getText();
						Produtos p = new Produtos();
						int selecionado = FuncoesGerais.recuperaCodigoCombo(cboTipoProdutoEditar);
						p.setTipoProduto(Tipos.IntTipo(selecionado));
						p.setCodigo(Integer.valueOf(id));
						p.setNome(txtNomeProdutoEditar.getText());
						p.setValor(Double.parseDouble(txtValorEditar.getText().replace(',', '.')));
						p.setQuantidade(Integer.parseInt(txtQuantidadeEditar.getText()));
						
						TxtIObj tx = new TxtIObj(p);
						if (tx.Editar()) {
							apoio.Mensagens.mensagemInfo("Edicao Realizada", "Edicao");
							limparCampos();
							preencher();
							tabbedPane.setSelectedComponent(layeredProdutos);
						} else {
							apoio.Mensagens.mensagemErro("Erro na edicao", "Edicao");
						}
					}
				}
			}
		});
		btnProdutoEditar.setFont(new Font("Dialog", Font.PLAIN, 10));
		btnProdutoEditar.setBounds(232, 157, 111, 23);
		layeredEdicao.add(btnProdutoEditar);
		
		JLabel label_2 = new JLabel("Tipo Produto:");
		label_2.setFont(new Font("Dialog", Font.PLAIN, 10));
		label_2.setBounds(12, 15, 85, 14);
		layeredEdicao.add(label_2);
		
		JButton btnCancelarEdicao = new JButton("Cancelar");
		btnCancelarEdicao.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				limparCampos();
				tabbedPane.setSelectedComponent(layeredProdutos);
			}
		});
		btnCancelarEdicao.setFont(new Font("Dialog", Font.PLAIN, 10));
		btnCancelarEdicao.setBounds(233, 185, 111, 23);
		layeredEdicao.add(btnCancelarEdicao);
		
		JLabel lblNome = new JLabel("Nome:");
		lblNome.setFont(new Font("Dialog", Font.PLAIN, 11));
		lblNome.setBounds(10, 61, 75, 14);
		layeredCadastro.add(lblNome);
		
		txtNome = new JTextField();
		txtNome.setBounds(104, 61, 238, 20);
		layeredCadastro.add(txtNome);
		txtNome.setColumns(10);
		
		JLabel lblValor = new JLabel("Valor:");
		lblValor.setFont(new Font("Dialog", Font.PLAIN, 11));
		lblValor.setBounds(10, 89, 46, 14);
		layeredCadastro.add(lblValor);
		
		txtValor = new JTextField();
		txtValor.setBounds(104, 86, 238, 20);
		layeredCadastro.add(txtValor);

		JLabel lblNewLabel = new JLabel("Quantidade:");
		lblNewLabel.setFont(new Font("Dialog", Font.PLAIN, 11));
		lblNewLabel.setBounds(11, 117, 75, 14);
		layeredCadastro.add(lblNewLabel);
		
	
		txtQuantidade = new JTextField();
		txtQuantidade.setBounds(105, 114, 237, 20);
		layeredCadastro.add(txtQuantidade);
		
		JButton btnCadastrarNovoProduto = new JButton("Cadastrar");
		btnCadastrarNovoProduto.setFont(new Font("Dialog", Font.PLAIN, 10));
		btnCadastrarNovoProduto.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if (verificaCampos()){
					if (apoio.Mensagens.question("Deseja Cadastrar ?", "Cadastrar")) {
						String id = lblNovoCodigo.getText();
						Produtos p = new Produtos();
						int selecionado = FuncoesGerais.recuperaCodigoCombo(cboTipoProduto);
						p.setTipoProduto(Tipos.IntTipo(selecionado));
						p.setCodigo(Integer.valueOf(id));
						p.setNome(txtNome.getText());
						p.setValor(Double.parseDouble(txtValor.getText().replace(',', '.')));
						p.setQuantidade(Integer.parseInt(txtQuantidade.getText()));
						
						TxtIObj tx = new TxtIObj(p);
						if (tx.Cadastrar()) {
							apoio.Mensagens.mensagemInfo("Cadastro Realizado", "Cadastro");
							limparCampos();
							preencher();
							tabbedPane.setSelectedComponent(layeredProdutos);
						} else {
							apoio.Mensagens.mensagemErro("Erro no Cadastro", "Cadastro");
						}
					}
				}
			}
		});
		btnCadastrarNovoProduto.setBounds(230, 153, 111, 23);
		layeredCadastro.add(btnCadastrarNovoProduto);
		
		cboTipoProduto = new JComboBox();
		cboTipoProduto.setFont(new Font("Dialog", Font.PLAIN, 10));
		cboTipoProduto.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				int selecionado = FuncoesGerais.recuperaCodigoCombo(cboTipoProduto);
				Produtos p = new Produtos();
				p.setTipoProduto(Tipos.IntTipo(selecionado));
				TxtIObj tx = new TxtIObj(p);
				
				lblNovoCodigo.setText(String.valueOf(tx.proximoCodigoCadastro(p.getTipoProduto())));
			}
		});
		cboTipoProduto.setBounds(104, 8, 238, 20);
		layeredCadastro.add(cboTipoProduto);
		
		JButton btnCancelarCadastro = new JButton("Cancelar");
		btnCancelarCadastro.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				limparCampos();
				tabbedPane.setSelectedComponent(layeredProdutos);
			}
		});
		btnCancelarCadastro.setFont(new Font("Dialog", Font.PLAIN, 10));
		btnCancelarCadastro.setBounds(230, 183, 111, 23);
		layeredCadastro.add(btnCancelarCadastro);
		contentPane.add(tabbedPane);
		
		final frmCadastrarProdutos isto = this;
		JMenuItem mntmSair = new JMenuItem("Sair");
		mntmSair.setFont(new Font("Dialog", Font.PLAIN, 11));
		mntmSair.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				isto.setVisible(false);
				isto.dispose();
			}
		});
		mnAes.add(mntmSair);

		
		scrollPane.setViewportView(getJTable());
		
		JButton btnSair = new JButton("Sair");
		btnSair.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				isto.setVisible(false);
				isto.dispose();
			}
		});
		btnSair.setFont(new Font("Dialog", Font.PLAIN, 10));
		btnSair.setBounds(575, 310, 90, 23);
		layeredProdutos.add(btnSair);
		preencher();
		preencherCboTipoProduto();
		setCodigEnumTipoUm();
	}
	
	/**
	 * @return retorna o jtable
	 * */
	private JTable getJTable(){
		if (table!=null) return table;
		table = new JTable(getModel());
		table.setBackground(Color.WHITE);
		table.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				btnEditar.setEnabled(SelecionouAlguem());
				btnExcluir.setEnabled(SelecionouAlguem());
			}
			@Override
			public void focusLost(FocusEvent e) {
				btnEditar.setEnabled(SelecionouAlguem());
				btnExcluir.setEnabled(SelecionouAlguem());
			}
		});
		return table;
	}
	
	/**
	 * @retunr Retorna o modelo do Jtable
	 * */
	private DefaultTableModel getModel(){
		return new DefaultTableModel(
				new String[][] {},
				getIpt().getTitulosJTable()
				) {
			private static final long serialVersionUID = -2030171847248754625L;

			@Override
			public boolean isCellEditable(int row, int column) {
				// return super.isCellEditable(row, column);
				return false;
			}
		};
	}
	
	/**
	 * Preenche do Jtable
	 * */
	private void preencher(){
		if (getIpt() == null) return;
		
		//table = null;
		//table = new JTable(getModel());
		DefaultTableModel modelo = (DefaultTableModel) getJTable().getModel();
		modelo.setNumRows(0);
		if (modelo.getRowCount() > 0) {
			for(int i = 0; i < modelo.getRowCount(); i++) {  
				modelo.removeRow(i);
	        }  
		}
		// Adiciona uma nova linha
		for(String[] st : getIpt().getDadosJTable()){
			modelo.addRow(st);
		}
	}
	
	/**
	 * @return true se selecionou alguem
	 * */
	private boolean SelecionouAlguem(){
		return getJTable().getSelectedRow() >= 0;
	}
	/**
	 * @return id selecionado
	 * */
	private String getIdSelecionado(){
		if (!SelecionouAlguem()) return "-1";
		DefaultTableModel modelo = (DefaultTableModel)getJTable().getModel();
		return (String)modelo.getValueAt(getJTable().getSelectedRow(), 0);
	}
	/**
	 * @return retorna um id de proximo cadastro para o label de codigo de produto
	 * na label de cadastro de produto
	 * */
	private void setCodigEnumTipoUm(){
		Produtos p = new Produtos();
		p.setTipoProduto(Tipo.papelaria);
		TxtIObj tx = new TxtIObj(p);
		
		lblNovoCodigo.setText(String.valueOf(tx.proximoCodigoCadastro(p.getTipoProduto())));
	}
	/**
	 * preenche as combos com os enuns dos tipo de produtos
	 * @see Produtos.TipoProduto
	 * */
	private void preencherCboTipoProduto(){
		cboTipoProduto.removeAll();
		cboTipoProduto.removeAllItems();
		Tipo[] arr = Tipo.values();
	    for (int i=0; i < arr.length; i++){
	    	Tipo item = arr[i];
	    	cboTipoProduto.addItem(item.getValue() + " - " + item.name());
	    }
	    
		cboTipoProdutoEditar.removeAll();
		cboTipoProdutoEditar.removeAllItems();
	    for (int i=0; i < arr.length; i++){
	    	Tipo item = arr[i];
	    	cboTipoProdutoEditar.addItem(item.getValue() + " - " + item.name());
	    }
	}
	
	/**
	 * Verifica se os campos digitados estao de acordo
	 * */
	private boolean verificaCampos(){
		boolean rt = true;
		String msgErr = "";
	    int valor; double dValor;
	    if (lblNovoCodigo.getText().equals("")) {rt = false; msgErr += "Codigo invalido\n";}
	    if (txtNome.getText().equals("")) {rt = false; msgErr += "Nome invalido\n";}
	    if (txtValor.getText().equals("")) {rt = false; msgErr += "Valor invalido\n";}
	    if (txtQuantidade.getText().equals("")) {rt = false; msgErr += "Quantidade invalida\n";}
	    
	    if (!rt){
	    	apoio.Mensagens.mensagemErro(msgErr, "Verifique o(s) Dados(s)");
	    	return rt;
	    }
	    
    	try {
    		valor = Integer.valueOf(txtQuantidade.getText());
    		if (valor < 0) {
    			rt = false;
    		}
    	} catch (Exception ex) {
    		rt = false;
    		msgErr += "Quantidade invalida\n";
    	}
	    
    	try {
    		dValor = Double.parseDouble(txtValor.getText().replace(',', '.'));
    		if (dValor < 0) {
    			rt = false;
    		}
    	} catch (Exception ex) {
    		rt = false;
    		msgErr += "Valor invalida\n";
    	}
	    
	    if (!rt){
	    	apoio.Mensagens.mensagemErro(msgErr, "Verifique o(s) Dados(s)");
	    }
		return rt;
	}
	
	/**
	 * Verifica se os campos digitados estao de acordo - edicao
	 * @return true se esta tudo ok
	 * */
	private boolean verificaCamposEditar(){
		boolean rt = true;
		String msgErr = "";
	    int valor; double dValor;
	    if (lblCodigoProdutoEditar.getText().equals("")) {rt = false; msgErr += "Codigo invalido\n";}
	    if (txtNomeProdutoEditar.getText().equals("")) {rt = false; msgErr += "Nome invalido\n";}
	    if (txtValorEditar.getText().equals("")) {rt = false; msgErr += "Valor invalido\n";}
	    if (txtQuantidadeEditar.getText().equals("")) {rt = false; msgErr += "Quantidade invalida\n";}
	    
	    if (!rt){
	    	apoio.Mensagens.mensagemErro(msgErr, "Verifique o(s) Dados(s)");
	    	return rt;
	    }
	    
    	try {
    		valor = Integer.valueOf(txtQuantidadeEditar.getText());
    		if (valor < 0) {
    			rt = false;
    		}
    	} catch (Exception ex) {
    		rt = false;
    		msgErr += "Quantidade invalida\n";
    	}
	    
    	try {
    		dValor = Double.parseDouble(txtValorEditar.getText().replace(',', '.'));
    		if (dValor < 0) {
    			rt = false;
    		}
    	} catch (Exception ex) {
    		rt = false;
    		msgErr += "Valor invalida\n";
    	}
	    
	    if (!rt){
	    	apoio.Mensagens.mensagemErro(msgErr, "Verifique o(s) Dados(s)");
	    }
		return rt;
	}
	
	/**
	 * limpa os campos de cadastro e edicao
	 * */
	private void limparCampos(){
		_codigoEditar = -1;
		lblNovoCodigo.setText("");
		txtNome.setText("");
		txtQuantidade.setText("");
		txtValor.setText("");
		cboTipoProduto.setSelectedIndex(0);
		
		lblCodigoProdutoEditar.setText("");
		txtNomeProdutoEditar.setText("");
		txtQuantidadeEditar.setText("");
		txtValorEditar.setText("");
		cboTipoProdutoEditar.setSelectedIndex(0);
	}
}
